using System;
using System.ComponentModel.DataAnnotations;
using HengTong.Model._Admin;
using WalkingTec.Mvvm.Core;

namespace HengTong.Model.Db.SupplyChain.Partner;

/// <summary>
/// 合作伙伴实体类
/// 包含供应商、客户等信息
/// </summary>
[Display(Name = "合作伙伴", Description = "合作伙伴管理", GroupName = "供应链")]
public class SysPartner : BasePoco
{
    /// <summary>
    /// 合作伙伴名称
    /// </summary>
    [Display(Name = "合作伙伴名称", Description = "合作伙伴名称", GroupName = "基本信息")]
    [StringLength(256)]
    public string Name { get; set; }

    /// <summary>
    /// 合作伙伴编码
    /// </summary>
    [Display(Name = "合作伙伴编码", Description = "合作伙伴编码", GroupName = "基本信息")]
    [StringLength(128)]
    public string Code { get; set; }

    /// <summary>
    /// ERP系统中的编号
    /// </summary>
    [Display(Name = "ERP编号", Description = "ERP系统中的编号", GroupName = "基本信息")]
    [StringLength(128)]
    public string ErpId { get; set; }

    /// <summary>
    /// 合作伙伴描述信息
    /// </summary>
    [Display(Name = "描述", Description = "合作伙伴描述信息", GroupName = "基本信息")]
    [StringLength(512)]
    public string Description { get; set; }

    /// <summary>
    /// 合作伙伴状态
    /// </summary>
    [Display(Name = "状态", Description = "合作伙伴状态", GroupName = "基本信息")]
    public CommonState CommonState { get; set; }
    
    /// <summary>
    /// 关联用户
    /// </summary>
    [Display(Name = "关联用户", Description = "关联用户", GroupName = "基本信息")]
    public FrameworkUser User { get; set; }
    
    /// <summary>
    /// 关联用户ID
    /// </summary>
    [Display(Name = "关联用户ID", Description = "关联用户ID", GroupName = "基本信息")]
    public Guid? UserId { get; set; }
    
    /// <summary>
    /// 合作伙伴类型
    /// </summary>
    [Display(Name = "合作伙伴类型", Description = "合作伙伴类型", GroupName = "基本信息")]
    public PartnerType? PartnerType { get; set; }
}
